草庐IT

dictionary - 构造深层结构不起作用

全部标签

ruby - 为什么 =~ 运算符只是有时有副作用?

我注意到Ruby/Oniguruma中的副作用仅出现在4个看似等效的语句中的1个中。为什么变量是day在009中定义,但不在003中,005或007?irb(main):001:0>r=/(?\d\d):(?\d\d)/=>/(?\d\d):(?\d\d)/irb(main):002:0>r=~"24:12"=>0irb(main):003:0>dayNameError:undefinedlocalvariableormethod`day'irb(main):004:0>"24:12"=~r=>0irb(main):005:0>dayNameError:undefinedlocalva

Ruby - 将目录添加到 $LOAD_PATH - 它有什么作用?

这其实是关于这个问题的问题:Addingadirectoryto$LOAD_PATH(Ruby)将目录添加到$LOAD_PATH时会发生什么?是不是像JavaScript一样在执行上下文中添加一个脚本文件?(可以访问其他文件中的全局方法/对象)如果没有,如何调用当前目录下其他ruby文件的方法? 最佳答案 将/Users/you/scripts/ruby目录添加到加载路径时,可以使用:require'example'代替:require'/Users/you/scripts/ruby/example.rb'

ruby - Amazon 基于前缀的 S3 策略不起作用(AWS、IAM、STS、Ruby)

我正在构建一个应用程序,该应用程序使用亚马逊的安全token服务来创建临时用户以访问S3存储桶上的子目录。用户由IAM用户创建,该用户对存储桶具有完全读/写访问权限(以及创建用户所需的权限)。我创建的用户与session过期等完美配合,但我在制定正确的策略以允许基于前缀的key列表方面遇到问题。我希望最终用户拥有的权限是:读取某个已定义前缀中的对象将对象写入相同定义的前缀列出驻留在定义的前缀中的所有对象我设法让读写正常工作,但无论我尝试什么,列表访问都无法正常工作。这是我最接近时使用的Ruby代码:AWS::STS::Policy.newdo|policy|policy.allow(a

ruby 数组内部结构

ruby数组是如何在内部实现的(主要是在CRuby中,但欢迎任何其他信息)?它们是像C++向量那样可增长的数组还是基于列表?shift/unshift和按索引访问元素的复杂性如何? 最佳答案 它们是“在最后增长”的可增长数组。shift是O(1),unshift是O(n)并且通过索引访问是O(1)。据我所知,这适用于所有ruby​​实现,但它绝对适用于MRI。更新:最初写完这个答案后,Ruby是enhanced使unshift摊销O(1)。增强数组在Ruby2.0.0之后,shift、unshift、push和pop都是O(1)或摊

ruby-on-rails - 如何解压缩包含 Rails 中的文件夹和文件的 zip 文件,同时保持目录结构

这个问题在这里已经有了答案:HowtounzipafileinRubyonRails?(4个答案)关闭6年前。我需要使用railsziprailsgem提取一个包含许多文件夹和文件的zip文件。同时保持文件和文件夹的组织方式与压缩时的方式一致。这并不像我想象的那么简单。请参阅我在下面找到的解决方案(添加以供将来引用)

ruby - 为什么 rvm install ruby​​ 不起作用?

据说在theRails3.2.9blog建议安装Ruby1.9.3-p327。但是rvminstallruby-1.9.3-p327实际上给出了一个错误,并且日志说:Thereisnochecksumfor'http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p327.tar.bz2'or'ruby-1.9.3-p327.tar.bz2',it'snotpossibletovalidateit.Ifyouwishtocontinuewithunverifieddownloadadd'--verify-downloads1'afterthec

ruby-on-rails - 管道 Assets 预编译禁用似乎不起作用

我已禁用管道Assets预编译。为此,我的config/application.rb&config/environments/development.rb中有以下行config.assets.enabled=false我正在尝试使用Capistrano3在开发环境中进行部署。当我运行部署命令时,我发现Assets是预编译的。$cap开发部署--traceDEBUG[8b4a938e]Command:cd/home/ec2-user/capistrano-3/a/releases/20140122054901&&(RAILS_ENV=development~/.rvm/bin/rvm2.

ruby - 如果在 Ruby 中一切都是对象,为什么这不起作用?

考虑到在Ruby编程语言中一切都被称为对象,我有把握地假设向方法传递参数是通过引用完成的。然而,下面这个小例子让我感到困惑:$string="String"defchanger(s)s=1endchanger($string)puts$string.classString=>nil如您所见,原始对象未被修改,我想知道原因,以及如何实现所需的行为,即。获取方法以实际更改其参数引用的对象。 最佳答案 Ruby的工作方式是按值传递和按引用传递的组合。事实上,Ruby使用引用传递值。您可以在以下线程中阅读更多内容:Passbyreferen

ruby-on-rails - ActiveRecord::Base 不属于从 ActiveRecord 降级的层次结构

我正在尝试创建一个Rails插件。在大多数情况下,我写的作品。但是,关联存在问题。当我尝试调用关联时,出现此错误:ActiveRecord::Basedoesn'tbelonginahierarchydescendingfromActiveRecord目前,插件看起来像这样:moduleControlledVersioningmoduleActsAsVersionableextendActiveSupport::Concernincludeddohas_many:versions,as::versionableafter_create:create_initial_versionend

ruby - QtRuby 发射不起作用

平台:Darwin*-*s-MacBook-Pro.local11.4.2DarwinKernelVersion11.4.2:ThuAug2316:25:48PDT2012;root:xnu-1699.32.7~1/RELEASE_X86_64x86_64ruby:ruby2.0.0p0(2013-02-24revision39474)[x86_64-darwin11.4.2](installedbyrvm)Qt:qt:stable4.8.4(bottled),HEAD代码:require'Qt'classFooconnect(self,SIGNAL('my_signal()'),se